package modules.citysection.world
{
import core.manager.MapManager;
import core.model.MapModel;
import core.model.PlayerModel;

import flash.display.DisplayObject;
import flash.display.MovieClip;

import framework.proxy.ComponentProxy;

import mapengine.IsoMap;
import mapengine.building.MapAvatar;

import values.avatar.AvatarValue;
import values.item.BuildingItemValue;

import view.interfaces.IWorldContainer;

/**
 * WorldUIProxy
 * @author jliang
 * 
 */
public class CitySectionWorldContainerProxy extends ComponentProxy implements IWorldContainer
{
	//==========================================================================
	//  Constructor
	//==========================================================================
	public function CitySectionWorldContainerProxy()
	{
		super();
	}
    //==========================================================================
    //  Properties
    //==========================================================================
    public function get displayObject():DisplayObject
    {
        return this.skinContent;
    }
	//==========================================================================
	//  Variables
	//==========================================================================
    [Inject]
	public var mapModel:MapModel;
    
    [Inject]
    public var playerModel:PlayerModel;
	//==========================================================================
	//  Overridden methods: ComponentProxy
	//==========================================================================
    override public function parse(target:MovieClip):void
    {
        super.parse(target);
        
        MapManager.loadMap("map/home_city.xml", mapReadyHandler);
    }
    //==========================================================================
    //  Event handlers
    //==========================================================================
    private function mapReadyHandler(map:IsoMap):void
    {		
        skinContent.addChildAt(map, 0);
        
        //test building
        var buildings:Array = mapModel.allBuildings;
        for each (var bvo:BuildingItemValue in buildings)
        {
            map.createBuilding(bvo);
        }
        
        //test avatar
        var avo:AvatarValue = playerModel.myPlayerAvatar;
        avo.direction = 0;
        avo.x = 7;
        avo.y = 7;
        
        var avatar:MapAvatar = new MapAvatar();
        avatar.objectData = avo;
        avatar.initialize();
        
        map.addSprite(avatar);
    }
}
}


